package days3.jvm_memory;

/**
 * JVM是分区管理数据的
 * JVM里面的分区包括以下几部分:
 * 1.JVM栈(栈)
 * 2.堆
 * 3.方法区
 * 4.程序计数器
 * 5.本地方法栈
 *
 * @Author fengzihao
 * @Date 2024-04-17 15:03
 */
public class Note {
    // 该部分主要靠理解记忆,代码只是辅助理解存储过程,详细存储过程需要结合md文档来学习记忆
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c = 3;

        test1();

        // sout(a);
        // sout(b);
        // sout(c);

        System.out.println("main===>" + a);
        System.out.println("main===>" + b);
        System.out.println("main===>" + c);


        // 堆是什么东西。 堆是Java内存中最大的一块。 它主要负责存储  new 出来的东西。
        // 凡是new出来的东西，全部都放在堆里面。

        // 创建一个数组。长度是5.
        int[] numbers = new int[5];
        int[] numbers2 = new int[10000];

        // JVM只帮你保证一件事： 创建的一个数组的内存空间是连续的。

        // Java是否需要，你手动回收垃圾。
        // 自动的垃圾回收。

        // 打印的时候，出来的是什么内容
        System.out.println(numbers);

    }

    public static void test1() {
        int a = 10;
        int b = 20;

        test2();

        // sout(a);
        // sout(b);
        // sout(c);
        System.out.println("test1===>" + a);
        System.out.println("test1===>" + b);
        // System.out.println(c);
    }

    private static void test2() {
        int a = 100;
        int c = 300;

        // sout(a);
        // sout(b);
        // sout(c);
        // System.out.println(b);
        System.out.println("test2===>" + a);
        System.out.println("test2===>" + c);


    }

}
